<?php
namespace Home\Controller;
use Think\Controller;
use Home\Logic\ThirdPartyLoginLogic;

class ThirdPartyLoginController extends Controller
{
	
    //登录地址
    public function login($type = null)
    {
        $type = I('type');
        
    	empty($type) && $this->error('参数错误');
    
    	//加载ThinkOauth类并实例化一个对象
    	import("Org.ThinkSDK.ThinkOauth");
    	$sns  = \ThinkOauth::getInstance($type);
    	$url = $sns->getRequestCodeURL();
    	//跳转到授权页面
    	redirect($url);
    }
    
    
    public function callback($type, $code = null)
    {
    	(empty($type) || empty($code)) && $this->error('参数错误');
    	
    	//加载ThinkOauth类并实例化一个对象
    	import("Org.ThinkSDK.ThinkOauth");
    	$sns  = \ThinkOauth::getInstance($type);
    
    	//腾讯微博需传递的额外参数
    	$extend = null;
    	if($type == 'tencent')
        {
    		$extend = array('openid' => $_GET['openid'], 'openkey' => $_GET['openkey']);
    	}
    
    	
    	//请妥善保管这里获取到的Token信息，方便以后API调用
    	//调用方法，实例化SDK对象的时候直接作为构造函数的第二个参数传入
    	//如： $qq = ThinkOauth::getInstance('qq', $token);
    	$token = $sns->getAccessToken($code , $extend);
    	//这里可以将token值存入数据库，或者缓存，session中
    	//获取当前登录用户信息
    	if(is_array($token))
        {
    		$logic = new ThirdPartyLoginLogic();
    		$user_info = $logic->$type($token);
    		$token['userInfo'] = $user_info;//第三方信息也传递过去
    		dump($token);
    	}
    }
    
    
}